Software reuse has become widely accepted as a cost-effective approach in software development. The software reuse approach emphasizes software development using reusable software assets. Many software development organizations have benefited from the software reuse approach by reducing the time and cost of software development as well as improving the quality of developed software.
In large software development organizations that spend numerous man-hours on software development in various technologies and domains, the repository of reusable software assets is likely to be very large over a period of time. When searching the repository of reusable software assets against a set of functional and technical requirements, generally a large number of search results are obtained. To maximize the benefits of reuse, the best reusable software asset has to be chosen from among the large number of search results.